# Docker

### Запуск севрвиса
    ~ systemctl start docker.service

### Показать контейнеры
    ~ docker ps [OPTIONS] - Показывать только запущеные контейнеры
    Основные флаги:
        -a - Показать вообще все контейнеры

### Образ
    ~ docker pull [OPTIONS] [LINK_IMAGE] - Скачать [IMAGE] из докер хаба https://hub.docker.com/
    Основные флаги:
        -q - Не выводить никакую информацию


    ~ docker image [OPTIONS] - Список [IMAGE], не включая промежуточные
    Основные флаги:
        -a - Вывод вообще всех [IMAGE]
        -q - Выводить только [IMAGE_ID]

### Создание и Запуск контейнеров
    ~ docker run [OPTIONS] [IMAGE] [COMMANDS] - Создание и запуск контейнера
    * [IMAGE] - Может быть указан с версией через :
    Основные флаги:
        -d - Запуск контейнера в фоновом режиме и печать [CONTEYNER_ID]
        --rm - Автоматическое удаление контейнера при выходе из него
        --name [CONTEYNER_NAME]- Присвоить имя контейнеру
        -p [PORT:PORT] - Проброс портов
        -e [ENV_LIST] - Добавить список переменных окружения

    Пример
        ~ docker run -d --rm --name "My-Conteyner" ubuntu:20.04 echo "Hello My docker"
    

### Запуск остановленого или остановленных контейнеров
    ~ docker start [OPTIONS] [CONTEYNER_ID | CONTEYNER_NAME]


### Приостановить все процессе в одном или нескольких контейнерах
    ~ docker pause [OPTIONS] [CONTEYNER_ID | CONTEYNER_NAME]


### Остановить один или несколько контейнеров
    ~ docker stop [CONTEYNER_ID | CONTEYNER_NAME]
    Основные флаги:
        -t - Подождать перед остановкой


### Убить один или несколько контейнеров
    ~ docker kill [CONTEYNER_ID | CONTEYNER_NAME]
    Основные флаги:
        -s - Отправить сигнал. По умолчанию KILL


### Показать низкоуровневую информацию об контейнере или контейнерах. (Конфиг и настройки при запуске)
    ~ docker inspect [CONTEYNER_ID | CONTEYNER_NAME]
    Основные флаги:
        -s - Отображать общий размер файлов
        --type [FIELD] - Вернуть определённое поля в json


### Статистика использования ресурсвов контейнером или контейнерами
    ~ docker stats [CONTEYNER_ID | CONTEYNER_NAME] - По умолчанию только запущеный
    Основные флаги:
        -a - Показать все контейнеры

### Получение журнала логов контейнера
    ~ docker logs [CONTEYNER_ID | CONTEYNER_NAME]
    Основные флаги:
        --details - Показать дополнительные подробности
        -f - Журнал в реальном времени
        -n [COUNT_ROW] - Начать от конца журнала - [COUNT_ROW]


### Зайти в докер контейнер
    ~ docker exec [CONTEYNER_ID | CONTEYNER_NAME]
    Основные флаги:
        -d - Выполнить команду в фоновом режиме
        -e [ENV_LIST] - Установить параметры окружения
        -i - Держать открытым STDIN
        --privileged - Дать расширенные привилегии команде
        -t - Выделить псевдо-TTY
        -u <name|uid>[:<group|gid>] Имя пользователя или UID
        -w [PATH_DIR] Рабочая директория внутри контейнера
    Пример: 
        ~ docker exec -it [CONTEYNER_ID | CONTEYNER_NAME] - держать терминал контейнера открытым

### Удалить контейнер и образ
    ~ docker rm [CONTEYNER_ID | CONTEYNER_NAME] - Удалить контейнер

    ~ docker rmi [IMAGE_ID] | [IMAGE_NAME] - Удаляет образ
